﻿/*****************************************************************************  

 Version: 0.1
 Website: http://www.visuagile.com/
 
 Copyright (c) Yoganand R. All rights reserved.
 For continued development and updates, visit http://yogsbreath.net
 
 ******************************************************************************/

using System.Collections;
using System.Collections.Generic;
using VisualAgile.Model;

namespace VisualAgile.IBLL
{
    /// <summary>
    /// Task Management
    /// </summary>
    public interface ITaskManager : IBaseManager<Task>
    {       
        /// <summary>
        /// Access to Tasks by Story
        /// </summary>
        /// <param name="TaskID">Story Id</param>
        /// <returns></returns>
        IList GetByStory(string StoryID);

        /// <summary>
        /// Access to Tasks by Stories
        /// </summary>
        /// <param name="TaskID">Story Ids</param>
        /// <returns></returns>
        IList GetByStories(string Stories);

        /// <summary>
        /// Access to Tasks by Status
        /// </summary>
        /// <param name="TaskID">Story Id</param>
        /// <returns></returns>
        IList GetByStatus(string StatusID);

        /// <summary>
        /// Access to Tasks by Iteration
        /// </summary>
        /// <param name="TaskID">Story Id</param>
        /// <returns></returns>
        IList GetByIteration(string IterationID);

        /// <summary>
        /// Access to Non-catagorized tasks
        /// </summary>        
        /// <returns>Tasks</returns>
        IList GetNonCatagorizedTasks();

        /// <summary>
        /// Create a Task (the default value contains the return)
        /// </summary>
        /// <returns></returns>
        Task NewTask();
    }
}
